package core

import (
	"suitbim.com/media/config"
)

// 定义核心包下会用到的共享变量
var (
	// G 全局配置对象引用
	G = config.GetGlobal()
)

// 定义核心包下会用到的常量
const (
	// SIG_OPEN 信号`开启推流`
	SIG_OPEN = "open"
	// SIG_CLOS 信号`关闭推流`
	SIG_CLOS = "close"
	// SIG_ACTS 信号`当前激活通道`
	SIG_ACTS = "actives"
	// SIG_CAPTURE_IMG 流截图
	SIG_CAPTURE = "capture"
	// 开启云台操作
	SIG_PTZ_START = "ptz_start"
	// 操作云台完成
	SIG_PTZ_END = "ptz_end"
	// 云台操成功
	SIG_PTZ_SUCCESS = "ptz_success"
	// 云台操作失败
	SIG_PTZ_FAIL = "ptz_fail"
	// 云台操作找不到
	SIG_PTZ_NOT_FOUND = "ptz_not_found"
)

// Message 用于解构从Dispatcher发来的消息
type Message struct {
	Sign    string   `json:"signal"`
	Chan    string   `json:"channel"`
	Content string   `json:"content"`
	Viewers []string `json:"viewers"`
}

type IPusher interface {
	Pull() (data []byte, err error)
	Close() error
}

// JSON 仿JSON
type JSON map[string]interface{}
